package Collection;

import java.util.*;

/**
 * List集
 * java.utl.List接口其继承Collection.
 * List集合的特点是可以存放个重复元素并且有序,提供了一套通过下标操作元素的方法
 * 常用实现类:
 * Java.util.ArrayList:使用数组实现.查询性能更好
 * Java.util.LinkedList: 使用链表实现,增删性能更好.首尾增删的性能最佳
 *
 *
 * */


public class ListDemo1 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        //List<String> list  =new LinkedList<>();
        list.add("one");
        list.add("teo");
        list.add("three");
        list.add("four");
        list.add("five");
        System.out.println(list);

        /**
         *E get (int index)
         * 获取当前集合 中 指定下标处对应的元素
         * */
        String str = list.get(2);//String str =array(2);
        System.out.println(str);
        for (int i = 0; i <list.size() ; i++) {
            System.out.println(list.get(i));
        }
            /*
            * E set (index , E  e)
            * 将给定元素设置到指定位置,返回值为该位置原来的元素
            * */
            System.out.println(list);
            String  old = list.set(2,"six");
            System.out.println(list);
            System.out.println(old);



            for(int k=0;k<list.size()/2;k++){

                //
                //将集合元素翻转
                //获取正数位置的元素
//            String s = list.get(i);
                //将正数位置元素存入倒数位置,并获取原倒数位置元素
//            s = list.set(list.size()-1-i,s);
                //将原倒数位置元素设置到正数位置上
//            list.set(i,s);

                list.set(k,list.set(list.size()-1-k,list.get(k)));
            }

            //[five,four,six,two,one]
            System.out.println(list);
         //将集合反转
           Collections.reverse(list);
           System.out.println(list);
           //乱序
             Collections.shuffle(list);
            System.out.println(list);

        }
        }



